Міністерство освіти і науки України
Національний університет «Львівська Політехніка»
Кафедра
Інформаційних
систем та мереж
Лабораторна робота №10
на тему
Робота зі структурами і файлами.
Львів – 2008
Мета роботи: практичних навичок опрацювання структур та роботи з файлами.
Завдання на роботу
Розробити програму яку забезпечує опрацювання структур даних і їх збереженян у файлі.
Опис деякого обєкту здійснюється за допомогою типу даних структура. Необхідно забезпечити опрацювання 3-5 атрибутів обєкту з використанням різних простих типів даних (стрічки, символи, числа, логічний тип)ю Забезпечити виконання таких операцій:
Ввід даних;
Пошук за значенням атрибуту;
Послідовний перегляд;
Модифікацію значень атрибутів обєктів (структури що його описує);
Видалення обєкту (структури що його описує);
Сортування за значеннями атрибутів;
Результати всіх операцій повинні зберігатись у файлі.
В контрольному прикладі продемонстурвати виконання основних операцій з файлом який містить 10-20 збережених описів обєктів.
Текст програми:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dos.h>
#define n 20
struct Tmob
{
char vyr[28];
char model[28];
char colir[28];
char IMEI[28];
};
int k=0,dija=0,el=0;
Tmob *mob;
void vved();
void menu();
void search();
void print();
void mod();
void del();
void sort(int zn);
void save();
Tmob a;
void main()
{ FILE *f;
textbackground(0);
clrscr();
mob=(Tmob *)malloc(n*sizeof(Tmob));
f=fopen("MOBILA.BIN","rb");
while(fread(&mob[k],sizeof(mob[k]),1,f))
k++;
fclose(f);
print();
getch();
}
void cursor_off()
{
_AH=0x1;
_CH=0x20;
geninterrupt(0x10);
}
void cursor_on()
{
_AH=0x1;
_CH=0x6;
_CL=0x7;
geninterrupt(0x10);
}
//=================
char s[30];
void vved()
{
char c,sm; int x=23,y=4;
//strcpy(s,0);
strcpy(a.vyr,0);
strcpy(a.model,0);
strcpy(a.colir,0);
strcpy(a.IMEI,0);
textcolor(0);
textbackground(11);
window(10,3,70,4);
clrscr();
gotoxy(24,1);
cprintf("Введiть данi:\n\r");
textbackground(BLUE);
window(10,4,70,18);
clrscr();
//------------
textcolor(0);
textbackground(14);
gotoxy(12,4);
cprintf("Виробник: ");
textbackground(15);
gotoxy(23,4);
cprintf(" ");
//---------------
textbackground(14);
gotoxy(12,6);
cprintf(" Модель: ");
textbackground(15);
gotoxy(23,6);
cprintf(" ");
//--------------
textbackground(14);
gotoxy(12,8);
cprintf(" Колiр: ");
textbackground(15);
gotoxy(23,8);
cprintf(" ");
//--------------
strcpy(s,a.vyr);
textbackground(14);
gotoxy(12,10);
cprintf(" IMEI: ");
textbackground(15);
gotoxy(23,10);
cprintf(" ");
textbackground(14);
gotoxy(x,y);
cprintf(" ");
gotoxy(x,y);
if(strcmp(s,0)!=0)
{
gotoxy(x,y);
cputs(s);
gotoxy(x,y);
}
while(1)
{if(kbhit) c=getch();
switch(c)
{
case 80:
{y+=2; if(y>10) y-=2;
switch(y-2)
{
case 4: {strcpy(s,a.vyr); break;}
case 6: {strcpy(s,a.model); break;}
case 8: {strcpy(s,a.colir); break;}
case 10: {strcpy(s,a.IMEI); break;}
}
textbackground(15);
gotoxy(x,y-2);
cprintf(" ");
if(strcmp(s,0)!=0)
{
gotoxy(x,y-2);
cputs(s);
gotoxy(x,y-2);
}
textbackground(14);
gotoxy(x,y);
cprintf(" ");
gotoxy(x,y);
switch(y)
{
case 4: {strcpy(s,a.vyr); break;}
case 6: {strcpy(s,a.model); break;}
case 8: {strcpy(s,a.colir); break;}
case 10: {strcpy(s,a.IMEI); break;}
}
if(strcmp(s,0)!=0)
{
gotoxy(x,y);
cputs(s);
gotoxy(x,y);
}
break;}
case 72:
{y-=2; if(y<4) y+=2;
switch(y+2)
{
case 4: {strcpy(s,a.vyr); break;}
case 6: {strcpy(s,a.model); break;}
case 8: {strcpy(s,a.colir); break;}
case 10: {strcpy(s,a.IMEI); break;}
}
textbackground(15);
gotoxy(x,y+2);
cprintf(" ");
if(strcmp(s,0)!=0)
{
gotoxy(x,y+2);
cputs(s);
gotoxy(x,y+2);
}
textbackground(14);
gotoxy(x,y);
...